package list;
/**
 * @Author:CJJ
 * 2025/4/15
 * 类 对象
 */
public class ArrayList {
    /**
     * 这个是非常常见的概念了。当我们定义一个集合时,集合的元素可能是各种各样的类型。
     * 因为需要各种各样的集合类来实现。
     * 使用泛型时，需要把泛型参数<T>转换成需要的class类型,List<String>list=new ArrayList<>();不指定泛型参数类型
     * 只会转换成Object类型。Java中通过擦拭法实现泛型,导致编译器把类型<T>视为Object,根据<T>实现安全的强制转型。因此,
     * 擦拭法决定了：泛型不能是基本类型,不能获取带泛型类型的class，不能判断泛型类的类型，不能实例化泛型类。
     */

    /**
     * 集合
     * 与大小固定的数组相比,集合能容纳更多类型的数据,能实时扩容,因此适用范围更广。
     * 列表：
     *  链表有两种,一种是ArrayList,可自动扩容,实现增删改查效率更高,List<String>list=new ArrayList<>();
     *  接口方法：在未尾添加一个元素,在指定索引加上元素,删除指定索引元素
     * 哈希表：
     *   键值映射表：put放入元素,get获取元素,containskey判断元素是否存在
     * 队列：
     *  先进先出的结构：获取长度使用size()注意！！其余情况有两种标准---添加元素到队尾add/offer,获取队首元素
     *  并队列中删除remove/poll,获取队首元素但不从队列中删除element/peek,前者一旦不成功会抛异常,后者只会返回FALSE!!
     *
     * 优先队列:
     *   队列中的元素是按照一定顺序排列的
     *   双端队列：两个都可以出入,因此需要加上LAST与FIRST-添加元素到队尾,添加元素到队首
     * 栈：
     *   先进后出的结构,常用方法有push\pop\peek等
     */
}
